const cp = require('child_process')	// 引入子进程
const { resolve } = require('path')

;(async () => {
	const script = resolve(__dirname, '../crawler/trailer-list')	// 拿到运行的爬虫脚本

	const child = cp.fork(script, [])	// 返回一个子进程对象 <= 重点

	let invoked = false	// 标识进程有没有跑起来

	child.on('error', err => {
		if(invoked) return	// 如果调用过，直接返回

		invoked = true	// 反之，则改为true

		console.log(err)
	})	// 增加回调函数监听异常

	child.on('exit', code => {
		if(invoked) return

		invoked = true
		let err = code === 0 ? null : new Error('exit code ' + code)

		console.log(err)
	})	//当进程退出的时候

	child.on('message', data => {
		let result = data.result

		console.log(result)
	})
})()